package com.hr.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hr.common.annotation.Excel;
import com.hr.common.core.domain.BaseEntity;

/**
 * 加班对象 sys_over_work
 * 
 * @author ruoyi
 * @date 2021-03-24
 */
public class SysOverWork extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 加班id */
    private Long overWorkId;

    /** 员工姓名 */
    @Excel(name = "员工姓名")
    private String userName;

    /** 所属组织 */
    @Excel(name = "部门编号")
    private Integer deptId;

    /** 所属组织 */
    @Excel(name = "所属组织")
    private String belongOrganization;

    /** 职位 */
    @Excel(name = "职位")
    private String post;

    /** 加班日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "加班日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date overWorkDate;

    /** 加班类型（0：工作日加班，1：休息日加班，2：法定节假日加班） */
    @Excel(name = "加班类型", readConverterExp = "0=：工作日加班，1：休息日加班，2：法定节假日加班")
    private String overWorkType;

    /** 申请日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyDate;

    /** 加班开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "加班开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date beginTime;

    /** 加班结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "加班结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 休息时长（单位：分钟） */
    @Excel(name = "休息时长", readConverterExp = "单=位：分钟")
    private Integer restTime;

    /** 加班小时数 */
    @Excel(name = "加班小时数")
    private Integer overWorkHour;

    /** 加班原因 */
    @Excel(name = "加班原因")
    private String overWorkReason;

    /** 补偿方式（0：加班费，1：调休） */
    @Excel(name = "补偿方式", readConverterExp = "0=：加班费，1：调休")
    private String rewardType;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 请假审批状态 */
    @Excel(name = "加班审批状态")
    private Integer workStatus;

    /** 用户编号 */
    @Excel(name = "用户编号")
    private Long userId;

    /** 租户id */
    @Excel(name = "租户id")
    private Long tenantId;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getTenantId() {
        return tenantId;
    }

    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }

    public Integer getDeptId() {
        return deptId;
    }

    public void setDeptId(Integer deptId) {
        this.deptId = deptId;
    }

    public Integer getWorkStatus() {
        return workStatus;
    }

    public void setWorkStatus(Integer workStatus) {
        this.workStatus = workStatus;
    }

    public void setOverWorkId(Long overWorkId)
    {
        this.overWorkId = overWorkId;
    }

    public Long getOverWorkId() 
    {
        return overWorkId;
    }
    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }
    public void setBelongOrganization(String belongOrganization) 
    {
        this.belongOrganization = belongOrganization;
    }

    public String getBelongOrganization() 
    {
        return belongOrganization;
    }
    public void setPost(String post) 
    {
        this.post = post;
    }

    public String getPost() 
    {
        return post;
    }
    public void setOverWorkDate(Date overWorkDate) 
    {
        this.overWorkDate = overWorkDate;
    }

    public Date getOverWorkDate() 
    {
        return overWorkDate;
    }
    public void setOverWorkType(String overWorkType) 
    {
        this.overWorkType = overWorkType;
    }

    public String getOverWorkType() 
    {
        return overWorkType;
    }
    public void setApplyDate(Date applyDate) 
    {
        this.applyDate = applyDate;
    }

    public Date getApplyDate() 
    {
        return applyDate;
    }
    public void setBeginTime(Date beginTime) 
    {
        this.beginTime = beginTime;
    }

    public Date getBeginTime() 
    {
        return beginTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setRestTime(Integer restTime) 
    {
        this.restTime = restTime;
    }

    public Integer getRestTime() 
    {
        return restTime;
    }
    public void setOverWorkHour(Integer overWorkHour) 
    {
        this.overWorkHour = overWorkHour;
    }

    public Integer getOverWorkHour() 
    {
        return overWorkHour;
    }
    public void setOverWorkReason(String overWorkReason) 
    {
        this.overWorkReason = overWorkReason;
    }

    public String getOverWorkReason() 
    {
        return overWorkReason;
    }
    public void setRewardType(String rewardType) 
    {
        this.rewardType = rewardType;
    }

    public String getRewardType() 
    {
        return rewardType;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("overWorkId", getOverWorkId())
            .append("userName", getUserName())
            .append("deptId",getDeptId())
            .append("belongOrganization", getBelongOrganization())
            .append("post", getPost())
            .append("overWorkDate", getOverWorkDate())
            .append("overWorkType", getOverWorkType())
            .append("applyDate", getApplyDate())
            .append("beginTime", getBeginTime())
            .append("endTime", getEndTime())
            .append("restTime", getRestTime())
            .append("overWorkHour", getOverWorkHour())
            .append("overWorkReason", getOverWorkReason())
            .append("rewardType", getRewardType())
            .append("remarks", getRemarks())
            .append("userId", getUserId())
            .append("tenantId", getTenantId())
            .toString();
    }
}
